# -*- coding: utf-8 -*-
def move(n,src,temp,dst):     # abc、ABC容易混淆，换个名称。 中文翻译为： 初始位置(盘子个数，源位置，缓冲位置，目的位置)  和 名字（盘子个数，柱子1，柱子2，柱子3）
  if n==1:
    print(src,'-->',dst)      #n==1时，以src柱子作为源，把n（也就是1）直接放到目的（dst）（因为题干要求“A借助B移动到C”）。【当然我们也可以自定义规则为：C借助A放到B，只是下面的顺序就要调整。】
  else:
    move(n-1,src,dst,temp)    #第一步： 以src柱子作为源，把n上面的所有盘子看成一个整体表达为 n-1, 放到【目的柱子】temp上，dst柱子作为缓冲（n-1移动到temp的缓冲）；此时程序逻辑判断继续递归考虑如何把n-1挪到temp，-->带入move函数自身要挪n-1,那么把n-2作为整体 挪到dst  依次递归  最后直到n==1。输出src-->dst
    move(1,src,temp,dst)      #第二步： 把n也就最后一个盘子 所以这里直接标记为1 从src柱子挪到目的dst柱子
    move(n-1,temp,src,dst)    #第三步： 把第一步已经挪到temp柱子 作为源 现在把它挪到第二步目的地（也就是n所在柱子）dst